Many client-side web browser technologies upload and download new data from the web server without undergoing a full page reload. To allow a user to continue to interact with the page, communications, such as data requests going to the server, are separated from data coming back to the page. Otherwise, the user would have to routinely wait for the data to come back before the user can do anything else on the page, just as a user has to wait for a page to complete the reload. This increases the overall performance of the site, as sending a request can complete more quickly, independent of blocking and queuing required to send data back to the user. For example, data fetched by an Ajax request is typically formatted in XML language or JavaScript® Object Notification (JSON) format. Since both of these formats are natively understood by JavaScript®, a programmer can easily use them to transmit structured data in their web application. When this data is received via Ajax, the JavaScript® program then uses the Document Object Model (DOM) to dynamically update the web page based on the new data, allowing for a rapid and interactive user experience. In short, using these techniques, web designers can make their pages function like desktop applications. For example, Google Docs® uses this technique to create a web based word processor.
Content augmentation is the process by which content is modified either through the addition, deletion, or change of parts of the content. For example, augmented reality is a form of content augmentation where additional information is presented on top of a visual representation of the surrounding environment.